Порт

Материал из ТХАБ.РФ
Перейти к: навигация, поиск

Порт прослушивания (также называемый портом для входящих соединений или портом сервера) используется программой, ждущей приглашений к соединениям от других программ.

Недоступным  порт прослушивания называют, когда эти приглашения не приходят, а пропадают где-то по дороге. Ещё такой порт часто называют «закрытым», поэтому шаги, делающие порт доступным, называют «открытием порта».

Как открыть порт

Порт для входящих соединений может быть закрыт по нескольким причинам. Основные две:
1. Вы за NAT провайдера. Тут без покупки внешнего IP ничего не сделать. Исключение могут составить малые сети (обычно до 10-20 компьютеров), где с владельцем сервера можно попробовать договорится насчёт проброса порта (port forwarding).
2. Вы не открыли порт в роутере/файрволе. Тогда вам сюда - Порт/Forwarding
3. Бывает, но реже, что порты закрывает провайдер. Например вот описание у одного из провайдеров:

"Для пользования интернет-услугой Telia выделяет для Клиента один динамический 
публичный IP-адрес. При желании Клиент может за дополнительную плату вместо него 
заказать статический IP-адрес.
По умолчанию порты интернет-подключения закрыты."


Первым делом необходимо определить - выделяет ли вам провайдер внешний IP-адрес (он же белый, прямой, публичный, реальный ). Статический этот адрес или динамический - не столь важно. Надёжнее всего - спросить провайдера. Но часто можно определить самому. Для этого надо определить - не попадает ли ваш IP-адрес в диапазоны локальных адресов:
Для внутренних адресов специально выделены несколько диапазонов IP:

10. 0. 0. 0 - 10. 255.255.255
172. 16. 0. 0 - 172. 31.255.255
192.168. 0. 0 - 192.168.255.255
100. 64. 0. 0 – 100.127.255.255

Эти адреса предназначены для использования в локальных сетях и сетях провайдеров и запрещены в интернете. Любой порт на таком адресе просто недоступен из интернета. Если у вас подключение к провайдеру через модем или роутер - посмотрите в его настройках WAN-адрес, и проверьте - попадает ли он в эти диапазоны.
Если у вас прямое подключение к сети провайдера (без использования модема или роутера) - выполните следующее:
Пуск - Выполнить и наберите команду cmd . В появившемся Dos-окне выполните команду ipconfig
Выглядеть это будет примерно так:

Windows IP Configuration
Ethernet adapter Local Area Connection:
IP Address. . . . . . . . . . . . : 192.168.1.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1

Или так:

Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 78.64.215.195
Subnet Mask . . . . . . . . . . . : 255.255.128.0
IP Address. . . . . . . . . . . . : fe80::418:d7gg:fe29:9a68%4
Default Gateway . . . . . . . . . : 78.64.255.254

Первый из этих адресов - это IP адрес вашего компьютера. На первом примере IP внутренний, на втором внешний (внешние ресурсы типа http://www.2ip.ru/ должны показать эти же цифры)


Иначе просто настройте свои файрвол и роутер:

  1. Как настроить файервол
  2. Что такое NAT и как определить, находитесь ли вы за NAT
  3. Роутер и его настройки
  4. Использование UPnP для перенаправления порта
  5. Перенаправление порта вручную

Кому нужен доступный порт

Это зависит от программ, которыми вы пользуетесь:

  • программы-клиенты, такие как веб-браузер или почтовая программа. Они всегда сами начинают соединения к другим компьютерам, поэтому порта прослушивания у них нет вообще.
  • программы-серверы, например веб-сервер или ftp-сервер. У каждого сервера есть порт прослушивания, на котором он ждёт соединений, инициируемых клиентами. Если вы хотите, чтобы к вашему серверу могли обращаться из интернета, этот порт надо обязательно сделать доступным.
  • P2P программа, например битторрент клиент. Каждая такая программа одновременно и ждёт приглашений к соединениям (как сервер), и сама инициирует соединения к другим P2P клиентам. Поэтому сделать её порт прослушивания доступным в принципе не обязательно, но очень желательно. Подробнее см. Порт в битторрент клиенте.

Выбор номера

Порт — это просто любое условное число от 1 до 65535. Теоретически номер порта ни на что не влияет.

Важно только, чтобы этот порт был свободен. Впрочем, если ваша программа при запуске обнаружит, что указанный вами порт занят (т.е. его уже слушает какая-то другая программа на вашем компьютере), то она вам сразу пожалуется сама.

На практике есть некоторые номера, которые выбирать не ст́оит, особенно небольшие, они могут быть заняты системными службами вашего компьютера. Некоторые номера могут специально блокироваться интернет-провайдерами.

Если вам не важен с эстетической точки зрения номер порта, то рекомендуется выбрать какой-нибудь порт выше 5000. Некоторые пользователи рекомендуют выбирать порт выше 42000.

Проверка доступности

Перед проверкой порта нужно обязательно запустить вашу программу (сервер), которая начнёт на вашем компьютере этот порт слушать, иначе и проверять будет нечего.

Клиентом

Можно проверять доступность порта сервера соответствующей программой-клиентом. Например если у вас стоит ftp сервер, то вы можете проверять, подключается ли к нему ftp клиент. Однако это не всегда возможно и иногда неудобно.

Недостаток этого (как и следующего способа) состоит в том, что проверку нужно обязательно делать с другого компьютера со своим собственным интернет подключением.

Telnet

Для проверки доступности TCP порта (а большинство прикладных протоколов используют TCP) достаточно попытаться установить с вашим сервером «сырое» TCP соединение с помощью telnet. Например в Windows выберите Пуск > Выполнить и выполните команду cmd. Затем в появившемся DOS-окне наберите telnet IP-адрес порт

Если соединение установится, экран либо станет пустым либо на нём появятся какие-то символы, в зависимости от вашего сервера. В случае неудачи появится сообщение о том, что соединение установить не получилось.

Сканером

В сети есть специальные онлайновые сканеры портов.

Port Number:   5908       Check Port   Зайдите на страницу любого из них, например whatsmyip.org/ports. Введите номер порта для проверки и нажмите кнопку Check Port.

  • Примечание: при проверке порта желательно, чтобы клиент был запущен и там был прописан этот-же порт. Иначе сканер может выдать сообщение "Порт закрыт", даже если он открыт.
 Port Status
 Port 5908  Open

Ваш IP адрес сканер видит сам, а порт вы ему сообщаете, и он делает попытку установить к вашему серверу TCP соединение. Статус порта Open означает, что ваш порт прослушивания доступен и все в порядке.
Другие сканеры:

Недостатком такого метода является невозможность задать произвольный IP адрес. Поэтому вы не можете проверять компьютеры других. И если вы пользуетесь веб-браузером через отдельный прокси, то проверка бесполезна — сканер будет пытаться начать соединение к IP адресу прокси.

Эти сканеры позволяют проверить порт для любого IP адреса.

Как задать вопрос

Если у вас не получается открыть порт, вы можете просить о помощи на форуме - http://rutracker.org/forum/viewtopic.php?t=907270.

Обязательно расскажите, что вы сделали все нужные шаги, и какие результаты при этом получили:

  • о том, что вы запустили вашу программу и проверили доступность порта онлайновым сканером (в битторрент клиенте не полагайтесь на индикатор порта или показания трекера)
  • адрес вашего компьютера из команды ipconfig (ifconfig для unix-подобных ОС)
  • адрес, под которым вас видно в интернете (можно первые два числа из четырёх)
  • какой файервол и как вы пытались его настроить (со скриншотом)
  • какой роутер и как вы пытались его настроить (со скриншотом)

Ссылки